Cloud Build から push する試み
#Cloud_Build
git イメージで clone する
github app で trigger してやってくるのは git リポジトリではない(.git は無い)
git ユーザ情報を設定する(コミットログを作るために必要)
差分があれば変更をコミットする
push するには認証が要る
公式ドキュメントでは ssh 秘密鍵をストアして volume に置いてる
ちょっと面倒だし、github personal access token でやりたい
アクションは制限できるけど、リポジトリの制限ができないな
Deploy Keys のほうがいいかも?
よさそう
もうちょい見る Managing deploy keys - GitHub Docs
限定公開 GitHub リポジトリへのアクセス  |  Cloud Build のドキュメント  |  Google Cloud
シークレットマネージャーに ssh 秘密鍵を保存する例
シークレットマネージャーから取得した値はファイルに書かれる
シークレットと認証情報の使用  |  Cloud Build のドキュメント  |  Google Cloud
シークレットマネージャと KMS の例
KMS で復号した値を環境変数に設定するのは Cloud Build の secrets フィールドでサポートされる
環境変数にそのまま設定されるので楽、暗号化された文字列を cloudbuild.yaml に埋める必要がある
シークレット マネージャーは、Cloud Build で機密データを管理するためのおすすめの方法です。既存のプロジェクトに引き続き Cloud KMS を使用しても構いませんが、新しいプロジェクトではシークレット マネージャーを使用します。
とのことなので、KMS よりシークレットマネージャのほうがおすすめらしい
Git - 認証情報の保存 を使う
github https の push/pull でも使える
git credential fill で作れるけど、https://user:password@example.com のような文字列でストアされるので、そのまま Secret Manager に保存して配置すればよい
code:credential-store
$ cat <<EOS | git credential-store --file ./hoge store
protocol=https
host=example.com
username=hoge
password=fuga
EOS
$ cat hoge
https://hoge:fuga@example.com
cloudbuild-playground/cloudbuild.yaml at master · pokutuna/cloudbuild-playground